﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using WebArchivosTelefonica.Jerarquias;
using System.Web.Profile;
using System.Collections.Generic;


namespace WebArchivosTelefonica
{
	/// <summary>
	/// Página de bienvenida para los usuarios clientes con un listado de sus proyectos
	/// </summary>
	public partial class ListadoProyectos : System.Web.UI.Page
	{
		/// <summary>
		/// Page load de la página
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		protected void Page_Load(object sender, EventArgs e)
		{
			AdministradorProyectos adminProyectos = new AdministradorProyectos(new FabricaLinqDataSource(), new EntidadLinqDataContext());
			ProfileBase usuarioProfile = HttpContext.Current.Profile as ProfileBase;

			//usuarioProfile.SetPropertyValue("TipoUsuario","Prueba");
			//usuarioProfile.Save();
			string tipoUsuario = (string)usuarioProfile.GetPropertyValue("TipoUsuario");

			if (tipoUsuario.StartsWith("Cliente_"))
			{
				string idClienteRol = tipoUsuario.Split(new char[1] { '_' })[1];
				
			}
			else
			{
			}
			//se traen los roles del usuario actual
			string[] rolesUsuario = Roles.GetRolesForUser();
			//se seleccionan todos los roles que tengan tres substrings partiendolos por '_'. Según
			//la convención establecida estos roles solo pueden ser los roles de proyecto.
			//NOTA: si la convención cambia por alguna razón esta parte del código también debe modificarse
			List<string> rolesProyectos = rolesUsuario.ToList().FindAll(x => x.Split(new char[1]{'_'}).Length == 3);

			foreach (string rolProyecto in rolesProyectos)
			{
				string idClienteRolProyecto = rolProyecto.Split(new char[1] { '_' })[1];
				string idProyectoRolProyecto = rolProyecto.Split(new char[1] { '_' })[2];

				string nombreProyectoRolProyecto = adminProyectos.GetNombreProyectoById(new Guid(idProyectoRolProyecto));

				if (nombreProyectoRolProyecto  != null)
					listadoProyectos.Items.Add(new ListItem(nombreProyectoRolProyecto, "ReporteProyecto.aspx?idProyecto=" + idProyectoRolProyecto)); 


			}


			//userProfile.SetPropertyValue("TipoUsuario", "Cliente_Telefonica");

			//userProfile.SetPropertyValue("Proyectos", new List<string> { "proyecto 1", "proyecto 2", "proyecto 3" });
			
			//string tipoUsuarioUsuario = (string)userProfile.GetPropertyValue("TipoUsuario");

			//List<string> proyectosUsuario = (List<string>)userProfile.GetPropertyValue("Proyectos");
			//ProfileCommon usuarioProfile = HttpContext.Current.Profile as ProfileCommon;

			//Cliente clienteActual = dc.Documentos.Single(x => x.Id == idDocumento);

		}
	}
}
